package com.blackandwhitesensation.sice.modelo.control;

import com.blackandwhitesensation.sice.modelo.Usuario;
import com.blackandwhitesensation.sice.modelo.dto.MembresiaMasivoDto;
import com.blackandwhitesensation.sice.modelo.dto.UsuarioDTO;
import com.blackandwhitesensation.sice.modelo.dto.UsuarioMasivoDTO;

import java.math.BigDecimal;

import java.util.*;


/**
 *
 * @author Zathura Code Generator http://code.google.com/p/zathura/
 *
 */
public interface IUsuarioLogic {
    public List<Usuario> getUsuario() throws Exception;

    public void saveUsuario(String alias, String apellido,
        String artistasVerEnvivo, String celular, String ciudadResidencia,
        String conocimientoMembresia, String correoElectronico,
        String deportePreferido, String direccionResidencia,
        String direccionTrabaja, Long edad, String empresaTrabaja,
        String estadoCivil, Date fechaNacimiento, String lugarNacimiento,
        String musicaPreferida, String nivelEducativo, String nombre,
        String paginasWebVisitadas, String pin, String profesion,
        String revistasLee, String sexo, String telefonoOficina,
        String telefonoResidencia, Long idTipoDoc_TipoDocumento,
        Long idTipoUsuario_TipoUsuario) throws Exception;

    public void deleteUsuario(String alias) throws Exception;

    public void updateUsuario(String alias, String apellido,
        String artistasVerEnvivo, String celular, String ciudadResidencia,
        String conocimientoMembresia, String correoElectronico,
        String deportePreferido, String direccionResidencia,
        String direccionTrabaja, Long edad, String empresaTrabaja,
        String estadoCivil, Date fechaNacimiento, String lugarNacimiento,
        String musicaPreferida, String nivelEducativo, String nombre,
        String paginasWebVisitadas, String pin, String profesion,
        String revistasLee, String sexo, String telefonoOficina,
        String telefonoResidencia, Long idTipoDoc_TipoDocumento,
        Long idTipoUsuario_TipoUsuario) throws Exception;

    public Usuario getUsuario(String alias) throws Exception;

    public List<Usuario> findByCriteria(Object[] variables,
        Object[] variablesBetween, Object[] variablesBetweenDates)
        throws Exception;

    public List<Usuario> findPageUsuario(String sortColumnName,
        boolean sortAscending, int startRow, int maxResults)
        throws Exception;

    public Long findTotalNumberUsuario() throws Exception;

    public List<UsuarioDTO> getDataUsuario() throws Exception;
    
    //M@URICIO
    public UsuarioDTO getUsuarioMembresia(Long numeroTarjeta) throws Exception;
    
    public void guardarCargueMasivo(List<UsuarioMasivoDTO> usuarios) throws Exception;
    
    //M@URICIO
    public void guardarUsuarioMembresia(Long cedula,String nombre,String apellido,
    									Long edad,String sexo,Long tipoDocumento,
    									String declaroSerMayor,String lugarNacimiento,
    									Date fechaNacimiento,String estadoCivil,String ciudadResidencia,
    									String direccionResidencia,String telefonoResidencia,String telefonoOficina,
    									String celular,String pinBlackBerry,String correoEletronico,
    									String nivelEducativo,String profesion,String empresaTrabaja,
    									String direccionEmpresa,String dondeConocio,String musicaPreferida,
    									String deportePrefereido,String paginaInternet,String artista,
    									String revistaMasLee, List<MembresiaMasivoDto> membresias) throws Exception;
    
    public void modificarUsuarioMembresia(Long cedula,String nombre,String apellido,
			Long edad,String sexo,Long tipoDocumento,
			String declaroSerMayor,String lugarNacimiento,
			Date fechaNacimiento,String estadoCivil,String ciudadResidencia,
			String direccionResidencia,String telefonoResidencia,String telefonoOficina,
			String celular,String pinBlackBerry,String correoEletronico,
			String nivelEducativo,String profesion,String empresaTrabaja,
			String direccionEmpresa,String dondeConocio,String musicaPreferida,
			String deportePrefereido,String paginaInternet,String artista,
			String revistaMasLee, List<MembresiaMasivoDto> membresias) throws Exception;
    
}
